home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Format CD 46
/
Amiga Format CD46 (1999-10-20)(Future Publishing)(GB)[!][issue 1999-12].iso
/
-in_the_mag-
/
reader_requests
/
scilab
/
man
/
man-part1
/
cat4
/
arl2.4
< prev
next >
Wrap
Text File
|
1999-09-16
|
2KB
|
133 lines
ARL2(4) Scilab Function ARL2(4)
NAME
arl2 - SISO model realization by L2 transfer approximation
CALLING SEQUENCE
[den,num,err]=arl2(y,den0,n [,imp])
[den,num,err]=arl2(y,den0,n [,imp],'all')
PARAMETERS
y : real vector or polynomial in z^-1, it contains the coefficients
of the Fourier's series of the rational system to approximate
(the impulse response)
den0 : a polynomial which gives an initial guess of the solution, it
may be poly(1,'z','c')
n : integer, the degree of approximating transfer function (degree
of den)
imp : integer in (0,1,2) (verbose mode)
den : polynomial or vector of polynomials, contains the
denominator(s) of the solution(s)
num : polynomial or vector of polynomials, contains the numerator(s)
of the solution(s)
err : real constant or vector , the l2-error achieved for each solu-
tions
DESCRIPTION
[den,num,err]=arl2(y,den0,n [,imp]) finds a pair of polynomials num and
den such that the transfer function num/den is stable and it's impulse
response approximates (with a minimal l2 norm) the vector y assumed to be
completed by an infinite number of zeros.
If y(z) = y(1)(1/z)+y(2)(1/z^2)+ ...+ y(ny)(1/z^ny)
then l2-norm of num/den - y(z) is err.
n is the degree of the polynomial den.
The num/den transfer function is a L2 approximant of the
Various intermediate results are printed according to imp.
[den,num,err]=arl2(y,den0,n [,imp],'all') returns in the vectors of poly-
nomials num and den a set of local optimums for the problem. The solutions
are sorted with increasing errors err. In this case den0 is already assumed
to be poly(1,'z','c')
EXAMPLE
v=ones(1,20);
xbasc();
plot2d1('enn',0,[v';zeros(80,1)],-2,'051',' ',[1,-0.5,100,1.5])
[d,n,e]=arl2(v,poly(1,'z','c'),1)
plot2d1('enn',0,ldiv(n,d,100),-2,'000')
[d,n,e]=arl2(v,d,3)
plot2d1('enn',0,ldiv(n,d,100),-3,'000')
[d,n,e]=arl2(v,d,8)
plot2d1('enn',0,ldiv(n,d,100),-5,'000')
[d,n,e]=arl2(v,poly(1,'z','c'),5,'all')
plot2d1('enn',0,ldiv(n(1),d(1),100),-10,'000')
SEE ALSO
ldiv, imrep2ss , time_id , armax, frep2tf